home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 065 (1988-08-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 065 (1988-08-15)(Ossowski, Stefan)(DE)(PD).adf / Life_3d / readme_life3 < prev    next >
Text File  |  1988-06-02  |  5KB  |  98 lines

  1.                     LIFE3    V1.1
  2.             copywrite 1987 by Bob Benedict
  3.  
  4.  
  5. LIFE3 is a 3D version of the classic cellular-automaton game. A good
  6. reference is A K Dewdney's COMPUTER RECREATIONS column in Scientific
  7. American. 3D life has explored heavily by Carter Bays who will send you
  8. a 40 page document on it for $3 to cover costs. His address is 
  9.    Carter Bays
  10.    Dept. of Computer Science
  11.    University of South Carolina
  12.    Columbia, S.C. 29028
  13.  
  14.  
  15. This is a shareware program. If you find it useful please send $20 to:
  16.                  Bob Benedict
  17.                  155 Barnes Dr
  18.                  Tallmadge, Ohio 44278
  19. and I'll sent you a disk with the latest version, source and examples.
  20.   
  21.  
  22. 3D life is played on a 3D grid of cubic cells. Cells in this version have
  23. two states: alive or dead. Each suceeding generation is created by using
  24. a count of the live neighbors of a cell and a set of rules. If a cell is
  25. live and it has less than EL neighbors or more than EU neighbors it dies.
  26. Otherwise it continues to live. If a cell is dead and it has less than
  27. FL neighbors or greater than FU neighbors it continues to stay dead. Otherwise
  28. it comes to life. 
  29.  
  30. FL, FU, EL ,and EU are parameters that control the laws of the universe the
  31. cells live in. These may be adjusted by taking the "LAWS" pick from the "RUN"
  32. menu. Remember to hit RETURN after entering a value in a string gadget.
  33.  
  34. Cells in this AMIGA version live in a finite 32x32x32 universe. The surface
  35. of this cube ( any coordinate 0 or 31) is sterile. The universe can be 
  36. initially populated three ways: a file can be LOADed, the EDIT option can
  37. be used or the a region filled with the RANDOM option.
  38.  
  39. The EDIT menu pick opens a 32x32 (x,y) window on a slice (z=constant) of the
  40. universe. The slider is used to pick the slice to edit. A mouse click will
  41. toggle a cell on or off. The edited universe is stored in the "seed"
  42. universe and used to compute new generations.
  43.  
  44. The RANDOM menu pick clears the "seed" universe and then fills a rectangular
  45. region centered around the ORIGIN with the density of live cells that you
  46. choose. The actual number of cells set on is usually less than the density
  47. times the volume since a location may be chosen more than once. The random
  48. number generator uses the algorithm from Wichman and Hill's MARCH 87 BYTE
  49. article. The generators are seeded by the system clock each time RANDOM
  50. is chosen. You can also use RANDOM to clear the universe by setting the
  51. density to 0.
  52.  
  53. The LOAD menu pick loads the seed universe from a file. The file also
  54. contains the law setting for that universe. The files used are straight ASCII
  55. text files that may be generated with a text editor or another program 
  56. ( in case you don't trust my random number generators). The STORE menu
  57. pick stores the current seed universe ( usually NOT the universe displayed!!).
  58. The RESET menu pick stores the current universe in the "seed" universe.
  59. This lets you STORE that universe in a file. 
  60.  
  61. The ORIGIN menu pick sets the origin that is the center of the present view.
  62. The VIEW menu pick sets the location of your eye. You'r so interested in
  63. the origin that you always look directly at it. The view, origin and cells
  64. are all relative to a global right hand coordinate system ( y up, z out).
  65.  
  66. To run the next generation just click with the select button in the window.
  67. To run many steps use the RUN menu pick. A mouse click will stop a multi-
  68. step run. The number of steps is bounded at 1000 to prevent strange behavior
  69. if you forget to hit return after entering a value in the string gadget.
  70.  
  71. Algorithm
  72.   A sparse matrix technique is used to create new generations. A universe
  73. has two representations: a 32x32 array of integers as a bit map and an
  74. array of structures that hold coordinates of live cells and some info used in 
  75. rendering. Only cells adjacent to live cells are checked in generating a 
  76. new universe. A spare bit map is used to keep track of cells checked so that
  77. no cell is checked twice. This cuts the amount of checking down by several
  78. orders of magnitude. A live cell has its bit set in the bitmap and is stored
  79. in the cell array. Its distance along the line from the eye to the origin
  80. is computed and the cells sorted in decreasing order. The cell list is clipped
  81. to remove cells behind the eye and the cells rendered with the most distant
  82. cells first.
  83.  
  84. This approach works well for a large universe that is sparsely populated.
  85. One drawback is that the number of cells living can not exceed the size of the
  86. cells array. The present version uses arrays that hold up to 2000 cells.
  87.  
  88. This program was written in MANX C. It has no assembly language routines. 
  89. I'd like to thank Henry Shilling for his help with the C language and the
  90. cantankerous C compiler. Also thanks to Charlie Heath for the slick file
  91. requester. 
  92.  
  93. Next Step
  94.   Possible improvement include using hires interlaced screens, adding 
  95. animation, and speeding up the program with some assembler code.
  96. What would you like to see?
  97.  
  98.